import request from '@/utils/request';
import { AxiosPromise } from 'axios';

/**
 * 查询生产计划排程列表
 * @param query
 * @returns {*}
 */

export const listSchedule = (query?: ScheduleVO): AxiosPromise<ScheduleVO[]> => {
  return request({
    url: '/wms/schedule/list',
    method: 'get',
    params: query
  });
};

/**
 * 查询生产计划排程详细
 * @param id
 */
export const getSchedule = (id: number): AxiosPromise<ScheduleVO> => {
  return request({
    url: '/wms/schedule/' + id,
    method: 'get'
  });
};

/**
 * 新增生产计划排程
 * @param data
 */
export const addSchedule = (data: ScheduleVO) => {
  return request({
    url: '/wms/schedule',
    method: 'post',
    data: data
  });
};

/**
 * 修改生产计划排程
 * @param data
 */
export const updateSchedule = (data: ScheduleVO) => {
  return request({
    url: '/wms/schedule',
    method: 'put',
    data: data
  });
};

/**
 * 删除生产计划排程
 * @param id
 */
export const delSchedule = (id: number | (number | undefined)[]) => {
  return request({
    url: '/wms/schedule/' + id,
    method: 'delete'
  });
};

export interface ScheduleVO extends BaseEntity, PageQuery {
    /** 计划id */
      id?: number;

    /** 计划名称 */
      name?: string;

    /** 订单id */
      orderId?: number;

    /** 产品id */
      productId?: number;

    /** 交货时间 */
      deliveryTime?: string;

    /** 状态 */
      status?: string;

    /** 数量 */
      quantity?: number;

    /** 备注 */
      remark?: string;

    /** 产品名称 */
    productName?: string;

    /** 完成数量 */
    quantityFinished?: number;

    /** 订单名称数量 */
    orderName?: string;

    /** 产品线名称 */
    workshopName?: string;

    /** 物料清单ID */
    bomId?: number;

    /** 物料清单名称 */
    bomName?: string;

    /** 物料清单耗时 */
    costTime?: number;

}
